package com.ljm.sys.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ljm.sys.auth.entity.SysAuthUserRole;
import com.ljm.sys.org.dto.SysOrgUserDto;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 系统用户角色关联 服务类
 * </p>
 *
 * @author HuamingChen
 * @since 2019-02-25
 */
public interface ISysAuthUserRoleService extends IService<SysAuthUserRole> {
    /**
     * 删除角色用户关联（根据用户id）
     * @param userId
     */
    void delByUserId(Long userId);

    /**
     * 角色关联用户
     * @param roleCode 角色代码
     * @param userIds 用户帐号
     * @param userDto 用户信息
     * @ 异常
     */
    void roleRefUser(String roleCode, List<Long> userIds, SysOrgUserDto userDto);

    /**
     * 获取用户拥有的角色
     * @param userId 用户id
     * @return 拥有的角色
     */
    Set<String> getDataByUserId(Long userId);

    /**
     * 角色关联用户
     * @param roleCodes 角色代码
     * @param userId 用户帐号
     * @param userDto 用户信息
     * @ 异常
     */
    void userRefRole(List<String> roleCodes, Long userId, SysOrgUserDto userDto);

}
